﻿// ***********************************************************************
// Assembly         : AccesoDatos
// Author           : Diego
// Created          : 03-02-2014
//
// Last Modified By : Diego
// Last Modified On : 03-02-2014
// ***********************************************************************
// <copyright file="AD_Subtipo_Estructura.cs" company="">
//     Copyright (c) . All rights reserved.
// </copyright>
// <summary></summary>
// ***********************************************************************
using Modelado.Modulos.ClasesModelado;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

/// <summary>
/// The ClasesAccesoDatos namespace.
/// </summary>
namespace AccesoDatos.Modulos.ClasesAccesoDatos
{
    /// <summary>
    /// Class AD_Subtipo_Estructura.
    /// </summary>
   public class AD_Subtipo_Estructura
    {
        //crear Subtipo_Estructura
        /// <summary>
        /// Crs the e_ subtipo_ estructura.
        /// </summary>
        /// <param name="comando">The comando.</param>
        /// <param name="obj">The object.</param>
       public void CRE_Subtipo_Estructura(SqlCommand comando, MOD_Subtipo_Estructura obj)
        {
            try
            {
                string sp = "SP_CRE_Subtipo_Estructura";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();


                comando.Parameters.Add(new SqlParameter("@SUBTIPOEST_NOMBRE", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@SUBTIPOEST_DESCRIPCION", SqlDbType.VarChar));
                comando.Parameters[0].Value = obj.SUBTIPOEST_nombre;
                comando.Parameters[1].Value = obj.SUBTIPOEST_descripcion;

                comando.ExecuteNonQuery();


            }
            catch (Exception exc)
            {
                throw exc;
            }
        }


       //eliminar Subtipo_Estructura
       /// <summary>
       /// Des the l_ subtipo_ estructura.
       /// </summary>
       /// <param name="comando">The comando.</param>
       /// <param name="codigo">The codigo.</param>
       public void DEL_Subtipo_Estructura(SqlCommand comando, int codigo)
       {
           try
           {
               string sp = "SP_DEL_Subtipo_Estructura";

               comando.CommandType = CommandType.StoredProcedure;
               comando.CommandText = sp;
               comando.Parameters.Clear();


               comando.Parameters.Add(new SqlParameter("@SUBTIPOEST_CODSUBTIPOEST", SqlDbType.Int));

               comando.Parameters[0].Value = codigo;

               comando.ExecuteNonQuery();


           }
           catch (Exception exc)
           {
               throw exc;
           }
       }


       //actualiza Subtipo_Estructura
       /// <summary>
       /// Ups the d_ subtipo_ estructura.
       /// </summary>
       /// <param name="comando">The comando.</param>
       /// <param name="obj">The object.</param>
       public void UPD_Subtipo_Estructura(SqlCommand comando, MOD_Subtipo_Estructura obj)
       {
           try
           {
               string sp = "SP_UPD_Subtipo_Estructura";

               comando.CommandType = CommandType.StoredProcedure;
               comando.CommandText = sp;
               comando.Parameters.Clear();

               comando.Parameters.Add(new SqlParameter("@SUBTIPOEST_CODSUBTIPOEST", SqlDbType.Int));
               comando.Parameters.Add(new SqlParameter("@SUBTIPOEST_NOMBRE", SqlDbType.VarChar));
               comando.Parameters.Add(new SqlParameter("@SUBTIPOEST_DESCRIPCION", SqlDbType.VarChar));

               comando.Parameters[0].Value = obj.SUBTIPOEST_codsubtipoest;
               comando.Parameters[1].Value = obj.SUBTIPOEST_nombre;
               comando.Parameters[2].Value = obj.SUBTIPOEST_descripcion;

               comando.ExecuteNonQuery();

           }
           catch (Exception exc)
           {
               throw exc;
           }
       }


       //listado  Subtipo_Estructura
       /// <summary>
       /// Ses the l_ grid_ subtipo_ estructura.
       /// </summary>
       /// <param name="comando">The comando.</param>
       /// <returns>List{MOD_Subtipo_Estructura}.</returns>
       public List<MOD_Subtipo_Estructura> SEL_Grid_Subtipo_Estructura(SqlCommand comando)
       {
           try
           {
               string sp = "SP_SEL_Grid_Subtipo_Estructura";

               comando.CommandType = CommandType.StoredProcedure;
               comando.CommandText = sp;
               comando.Parameters.Clear();

               IDbDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
               DataSet ds = new DataSet();
               da.Fill(ds);

               DataTable dt = ds.Tables[0];
               List<MOD_Subtipo_Estructura> lista = new List<MOD_Subtipo_Estructura>();

               for (int i = 0; i < dt.Rows.Count; i++)
               {
                   MOD_Subtipo_Estructura obj = new MOD_Subtipo_Estructura();
                   obj.SUBTIPOEST_codsubtipoest = Convert.ToInt32(dt.Rows[i]["SUBTIPOEST_CODSUBTIPOEST"]);
                   obj.SUBTIPOEST_nombre = dt.Rows[i]["SUBTIPOEST_NOMBRE"].ToString();
                   obj.SUBTIPOEST_descripcion = dt.Rows[i]["SUBTIPOEST_DESCRIPCION"].ToString();

                   lista.Add(obj);
               }

               return lista;

           }
           catch (Exception exc)
           {
               throw exc;
           }
       }

       //trae info de Subtipo_Estructura
       /// <summary>
       /// Ses the l_ subtipo_ estructura by identifier.
       /// </summary>
       /// <param name="comando">The comando.</param>
       /// <param name="CODSUBTIPOEST">The codsubtipoest.</param>
       /// <returns>MOD_Subtipo_Estructura.</returns>
       public MOD_Subtipo_Estructura SEL_Subtipo_EstructuraByID(SqlCommand comando, int CODSUBTIPOEST)
       {
           try
           {
               string sp = "SP_SEL_Subtipo_EstructuraByID";

               comando.CommandType = CommandType.StoredProcedure;
               comando.CommandText = sp;
               comando.Parameters.Clear();

               comando.Parameters.Add(new SqlParameter("@SUBTIPOEST_CODSUBTIPOEST", SqlDbType.Int));


               comando.Parameters[0].Value = CODSUBTIPOEST;


               IDbDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
               DataSet ds = new DataSet();
               da.Fill(ds);

               DataTable dt = ds.Tables[0];
               MOD_Subtipo_Estructura obj = new MOD_Subtipo_Estructura();

               for (int i = 0; i < dt.Rows.Count; i++)
               {
                   obj.SUBTIPOEST_codsubtipoest = Convert.ToInt32(dt.Rows[i]["SUBTIPOEST_CODSUBTIPOEST"]);
                   obj.SUBTIPOEST_nombre = dt.Rows[i]["SUBTIPOEST_NOMBRE"].ToString();
                   obj.SUBTIPOEST_descripcion = dt.Rows[i]["SUBTIPOEST_DESCRIPCION"].ToString();
               }

               return obj;


           }
           catch (Exception exc)
           {
               throw exc;
           }
       }

       /// <summary>
       /// Ses the l_ subtipo_ estructura by nombre.
       /// </summary>
       /// <param name="comando">The comando.</param>
       /// <param name="SUBTIPOEST_NOMBRE">The subtipoes t_ nombre.</param>
       /// <returns>System.Int32.</returns>
       public int SEL_Subtipo_EstructuraByNombre(SqlCommand comando, string SUBTIPOEST_NOMBRE)
       {
           try
           {
               string sp = "SP_SEL_Subtipo_EstructuraByNombre";
               int cant = 0;
               comando.CommandType = CommandType.StoredProcedure;
               comando.CommandText = sp;
               comando.Parameters.Clear();

               comando.Parameters.Add(new SqlParameter("@SUBTIPOEST_NOMBRE", SqlDbType.VarChar));


               comando.Parameters[0].Value = SUBTIPOEST_NOMBRE;


               IDbDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
               DataSet ds = new DataSet();
               da.Fill(ds);

               DataTable dt = ds.Tables[0];
               MOD_Subtipo_Estructura obj = new MOD_Subtipo_Estructura();

               for (int i = 0; i < dt.Rows.Count; i++)
               {
                   cant = Convert.ToInt32(dt.Rows[i]["SUBTIPOEST_CANT"]);

               }

               return cant;


           }
           catch (Exception exc)
           {
               throw exc;
           }
       }
    }
}
